package com.smallA.service;

import com.smallA.po.Exam;
import com.smallA.po.Test;
import com.smallA.po.TopicType;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface TestService {
    /**
     * 获取所有的考试
     *
     * @return 返回查询的所有考试的结果集
     */
    List<Test> selectAllTest();

    /**
     * 通过id获取对应的考试
     *
     * @param id 考试id
     * @return 返回对应的考试
     */
    Test selectTestById(Integer id);

    /**
     * 提交试卷
     *
     * @param map 对应的试卷的答案集合
     * @param gid 试卷id
     */
    boolean windingTest(Map map, Integer gid);

    /**
     * 查询所有的类型题目,用来出卷子
     *
     * @return 返回所有的类型题
     */
    List<TopicType> selectAllTopicTpe();

    /**
     * 添加异常考试
     *
     * @param beginDate 开始考试时间
     * @param examId    试卷id
     * @param useTime   使用时间
     * @param context   具体描述
     * @return 返回添加是否成功
     */
    boolean insertTest(Date beginDate, Integer examId, Integer useTime, String context);

    Integer selectTestByGradeId(Integer gid);


    boolean markGrade(Float[] fills,Float[] shorts, Exam exam,Integer gid);
}
